#include "list_carre.h"

list_carre* creat_list_carre(){

    list_carre *new = (list_carre *)malloc(sizeof(list_carre));
    new->premier = NULL;
    new->hauteur = 0;
    new->largeur = 0;
    new->pluspetitabsci = -1;
    new->pluspetitordo = -1;

    return new;
}

void add_carre(list_carre *l,int abscisse ,int ordonner){

    if(l == NULL){
        exit(EXIT_FAILURE);
    }

    carre *new = (carre*)malloc(sizeof(carre));
    new->abscisse = abscisse;
    new->ordonner = ordonner;

    if(l->premier == NULL){
            l->premier = new;
            new->suivant = NULL;
    }else{
        new->suivant = l->premier;
        l->premier = new;
    }
}

void supp_carre (list_carre * l, carre * c)
{
    carre *jouer = l->premier;
    if(jouer != c){
        while( jouer->suivant != NULL && jouer->suivant != c){
            jouer = jouer->suivant;
        }
        if(jouer->suivant == c){
            carre * tampon = jouer->suivant;
            jouer->suivant = tampon->suivant;
            free(tampon);
        }
    }else{
        l->premier = jouer->suivant;
        free(jouer);
    }
}

void supp_list_carre(list_carre *l){

    if(l == NULL){
        exit(EXIT_FAILURE);
    }
    carre * asup;
    while(l->premier){
        asup = l->premier;
        l->premier = asup->suivant;
        free(asup);
    }
    free(l);
}
